/*
 * Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package com.sun.corba.se.impl.naming.namingutil;

/**
 * The corbaloc: URL definitions from the -ORBInitDef and -ORBDefaultInitDef's
 * will be stored in this object. This object is capable of storing multiple
 * Host profiles as defined in the CorbaLoc grammer.
 *
 * @author Hemanth
 */
public abstract class INSURLBase implements INSURL {

  // If rirFlag is set to true that means internal
  // boot strapping technique will be used. If set to
  // false then the EndpointInfo will be used to create the
  // Service Object reference.
  protected boolean rirFlag = false;
  protected java.util.ArrayList theEndpointInfo = null;
  protected String theKeyString = "NameService";
  protected String theStringifiedName = null;

  public boolean getRIRFlag() {
    return rirFlag;
  }

  public java.util.List getEndpointInfo() {
    return theEndpointInfo;
  }

  public String getKeyString() {
    return theKeyString;
  }

  public String getStringifiedName() {
    return theStringifiedName;
  }

  public abstract boolean isCorbanameURL();

  public void dPrint() {
    System.out.println("URL Dump...");
    System.out.println("Key String = " + getKeyString());
    System.out.println("RIR Flag = " + getRIRFlag());
    System.out.println("isCorbanameURL = " + isCorbanameURL());
    for (int i = 0; i < theEndpointInfo.size(); i++) {
      ((IIOPEndpointInfo) theEndpointInfo.get(i)).dump();
    }
    if (isCorbanameURL()) {
      System.out.println("Stringified Name = " + getStringifiedName());
    }
  }

}
